# 九九乘法表
# for i in range(1, 10):            #行数 1-9行
#     for j in range(1, i+1):       #每行的列数都和该行数相等，所以列数应该循环从1-i
#         print('{}x{}={}\t'.format(j, i, i*j), end='')
#        #print(i,'x',j,'=',i*j,end='\t')
#     print()  #换行
# for
# arry=[[1,1,0],[5,2,0]]
# GCD=arry[][]
GCD=10
for i in range(GCD):
    if i != 0:
     print(i,end=' ')
''' 
1 2 3 4 5 6 7 8 9
'''


print('\n')
Q1 = [ [1, 3, 4, 5], [ 5, 6, 7, 8], [6,9,11,88] ]
for i in range(3):
    for j in range(4):
        print(Q1[i][j],end=' ')
    print('\n')      #一个个打印出数组中的元素
'''
1 3 4 5 
5 6 7 8 
6 9 11 88 
'''

Q2 = [[1, 3, 4, 5], [2, 3, 4, 5, 6, 7, 8], [6, 9]]
print(len(Q2[1]))  #打印的是[2, 3, 4, 5, 6, 7, 8]的长度
'''  
 7  
'''

for i in Q2:
    print(i)
'''
[1, 3, 4, 5]
[2, 3, 4, 5, 6, 7, 8]
[6, 9]
'''

'''打印出数组中每个元素的下标'''
for i in range(len(Q2)):   # 0-2
    for j in range(0, len(Q2[i])):  # 0-3   0-6   0-1
        print(j,end=' ')
    print('\n')
'''
0 1 2 3
0 1 2 3 4 5 6
0 1
'''

for i in range(0):
    print(i)     #什么都打印不出来

F = [[2, 2.5, 3],  # 业务1 路径1-3上的时延：2 , 在路径3-4上的时延：2.5 , 在路径4—5上的时延：3  ....一直到业务到达
     [2, 2.5, 3],  # 业务2 路径2-3上的时延：2 , 在路径3-4上的时延：2.5 , 在路径4—5上的时延：3
     [2, 2.5, 3]]  # 业务3 路径1-3上的时延：2 , 在路径3-4上的时延：2.5 , 在路径4—5上的时延：3


# import gurobipy as gp
# from gurobipy import *
# from gurobipy import GRB
#
# m = gp.Model("TTE_test")
#
# C = m.addVars(range(1, 10), range(1, 10), vtype='C', name="C")
#
# Z = m.addVars(20, vtype=GRB.BINARY, name='Z')
#
# M = m.addVar(lb=0, ub=gurobipy.GRB.INFINITY, vtype=GRB.SEMIINT, name='M')
'''编写自动生成的路径约束函数'''
# k=0
# def Add_Constrs(Ln_m):                      #参数是一个二维数组
#     global k
#     for i in range(1, len(Ln_m) - 1):
#         for j in range(i + 1, len(Ln_m)):
#             k += 1
#             m.addConstr(C[ Ln_m[i][0], Ln_m[0][0] ] + Ln_m[i][1] <= C[Ln_m[j][0], Ln_m[0][0]] + Z[k] * M, '')
#             m.addConstr(C[ Ln_m[j][0], Ln_m[0][0] ] + Ln_m[j][1] <= C[Ln_m[i][0], Ln_m[0][0]] + (1 - Z[k]) * M, '')
#
# L7_9 = [[7,9],[3, 2], [4, 2], [6, 3], [9, 4]] #第一个元素的[7,9]是指这条路的端结点，后面开始依次代表[业务号,帧长]
# Add_Constrs(L7_9)
# m.write('f_t.lp')


num=10
def main():
    global num
    print(num)
    ''' 10 '''

    num=5
    print('main:{}'.format(num))

main()
print('外部:{}'.format(num))
'''
5
'''

lst = [4, 2, 6, 3, 9, 8]
GCD=[]
for i in lst:
    if i !=3 and i != 4 :
        GCD.append(i)
print(GCD)
''' [2, 6, 9, 8] '''


a = [b  for b in lst  if b != 3 and i != 4 ]
print(a)
'''  [4, 2, 6, 9, 8]  '''

lst=[[1,0,3],[8,9]]
a =[i  for i in lst if i !=0 ]
print(a)


a = [  i   for i in range(100)  if not(i % 2) and i % 3]
# not (i%2)为真的条件是：not 0 ；即需要i%2==0，即i能被2整除； i%3为真的条件是 i%3 != 0，即i不能被3整除。
#相当于输出 100 以内 能被2整除不能被3整除的数
print(a)
''' [2, 4, 8, 10, 14, 16, 20, 22, 26, 28, 32, 34, 38, 40, 44, 46, 50, 52, 56, 58, 62, 64,
     68, 70, 74, 76, 80, 82, 86, 88, 92, 94, 98]'''



''' 例如 for (int i=9;i>=0;i–) 的C-type循环怎么在python中体现呢,当然也是用in range了'''
for i in range(9,-1,-1):
    print (i,end=' ')
'''  9 8 7 6 5 4 3 2 1 0  '''